//es5 
// 至少以前了解过做过js方面的开发，jquery  ajax
// var a = 1;
// {
//     var a =2;
//     console.info('块级作用域：', a)
// }

// console.info('全局作用域：', a);
// var a = [];
// for ( var b=0; b<3; b++) {
//     a[b]=function() {
//         console.info(b);
//     }
// }

// a[2]();


// var res = require('./a.js')
// var b = res(2)
// console.info(b)


// //  猫，熊猫，老虎，狮子
// // 哺乳动物 人，猫 
// //  归类。猫科动物


// function  Cat (name, age, sex) {
//     this.name = name;
//     this.age = age;
//     this.sex = sex;
// }

// var cat1 = new Cat('Tom', 1, '公猫');
// var cat2 = new Cat('MiaoMiao', 2, '母猫');






// function a (param1, param2) {
//     console.log(this,param1,param2)
// }
// // 显式传递
// a.call(1,'hello',2) a.apply(1,['hello',2])
//隐式传递
// var a = {
//     c: 3,
//     d: function () {
//         console.log(this.c)
//     }
// }
// a.d()
// bind 绑定传递

// console.log(cat1, cat2)
// 构造函数
function Person (name, age) {
    this.name = name;
    this.age = age;
    this.eat = function () {
        console.log('吃的动作')
    }
    this.sleep = function () {
        console.log('睡觉的动作。')
    }
}

Person.prototype.sex = '男人';

// 1、 new 先创建一个空对象 {} (有一个属性，key 是__proto__) 
// 2、 把{}绑定到 构造函数的this
// 3、 构造函数的prototype 复制到__proto__  
// 4、 返回新创建的对象
// var p1 = new Person('Zane', '保密');
// console.log(Person.prototype)
// console.log(p1.__proto__)
// console.info(p1)
// function showColor() {
//     console.log(this, 'color: red')
// }
// showColor.bind('Zane')();


function Temp () {
}
Temp.prototype = Person.prototype



function Boss(name, age) {
    
    Person.call(this, name, age)

    this.sex = '女人'
    this.eat = function () {
        console.log('吃的饭比较好，吃相也比较在意')
    }
}
Boss.prototype = new Temp();


Person.prototype.color = '黄色'

Boss.prototype.money = '100万'

var b1 = new Boss('马云', 50);
var p1 = new Person('Zane', '不告诉你')

console.log(b1.sex)
//多态

